Tout ce dont votre package a besoin

Joseph Barbier - PyCon2025

A propos


Freelance

Open source

Data(viz)

Le bon package et le mauvais package

Un bon package c’est pas (uniquement) une question de code.

  • facile à comprendre ?
  • facile à utiliser ?
  • facile à développer ?

TLDR: package Python

def my_super_cool_function(arg):
    if arg == "cool":
        something = 123
    else:
        ...
    
    ...

    return something

Facilement distribuable et donc reutilisable !

Sommaire

Votre package a besoin de ces 4 choses, la dernière va vous surprendre 😱 !


  • Ne jamais commit une erreur
  • Tester dans les meilleures conditions
  • Configuration du pyproject.toml
  • Créer la meilleure documentation

Parlons style de code !

def add_nums(  A ,B):return A+B

def add_nums(  A ,B):return A+B

import numpy as np
def add_nums_numpy(  A ,B):
     return np.sum([A, B])

def add_nums(  A ,B):return A+B

import numpy as np
def add_nums_numpy(  A ,B):
     return np.sum([A, B])


def divideNums( A , B):
        return A/B
def multiply(a,b ):
 return  a *b

def add_nums(  A ,B):return A+B

import numpy as np
def add_nums_numpy(  A ,B):
     return np.sum([A, B])


def divideNums( A , B):
        return A/B
def multiply(a,b ):
 return  a *b

def main( ) :
    x= add_nums(2,  3) 
#some comment
    y=multiply( x ,4 )                            # in the middle of the sea
    print( "sum:",x  )
    print("product:" ,  y)

import numpy as np


def add_nums(A, B):
    return A + B

def add_nums_numpy(A, B):
    return np.sum([A, B])

def divideNums(A, B):
    return A / B

def multiply(a, b):
    return a * b

def main():
    x = add_nums(2, 3)
    # some comment
    y = multiply(x, 4)  # in the middle of the sea
    print("sum:", x)
    print("product:", y)


ruff est probablement la meilleure option


2 manières d’utiliser :

  • “on save”
  • pre-commit
  • On va faire les deux !

Git


  • Git c’est Google Drive sous stéroïdes, pour des fichiers légers
  • comme des fichiers textes par exemple…
  • … et donc des fichiers de code!



  • Git c’est surtout l’historique, avec les commits

Animating content

Animating content